<?php
/**
 * <https://y.st./>
 * Copyright © 2017 Alex Yst <mailto:copyright@y.st>
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <https://www.gnu.org./licenses/>.
**/

$xhtml = array(
	'<{title}>' => 'Course selection',
	'takedown' => '2017-11-01',
	'<{body}>' => <<<END
<section id="advertisements">
	<h2>Unsponsored advertisements</h2>
	<p>
		If you&apos;re Christian and you like to get into the holiday spirit, Myuu has a new track just for you: <a href="https://myuu.bandcamp.com/album/god-rest-ye-merry-gentlemen-dark-piano-version">God Rest Ye Merry Gentlemen (Dark Piano Version)</a>.
		Not being Christian myself, I have no further comment.
	</p>
</section>
<section id="general">
	<h2>General news</h2>
	<p>
		I can&apos;t say I was having any gay <strong>*feelings*</strong> today, but I was certainly thinking a lot of gay thoughts.
		Hopefully it&apos;s a sign that my gayness is continuing to wax, and I&apos;ll be back to feeling very gay soon.
		Maybe this time, I&apos;ll appreciate my gayness more instead of hating it.
		I actually miss my gayness, and would like it to be back in full force.
	</p>
	<p>
		I was able to verify today that I do have my expected day off, Wednesday.
		I didn&apos;t request the day off, but I usually have Wednesdays off lately.
		That means I&apos;ll be dealing with the next tooth extraction on my day off, which is a mixed bag.
		It means I don&apos;t have to deal with my day job when I&apos;ll be in the most pain, but it also means I&apos;m going to potentially be pretty useless on my day off work, which I can&apos;t afford because of coursework.
		I&apos;ll just need to do my best to get as much done before then as I can.
		All the big stuff will be due that day.
	</p>
</section>
<section id="university">
	<h2>University life</h2>
	<p>
		The plan I formed yesterday was stupid.
		I can&apos;t focus on one course&apos;s reading material, then switch it up and work on the other course as soon as I finish.
		The discussion assignments are time-sensitive, so they need to be worked on early on in both courses.
		I&apos;ve completed the first discussion post for the one course today, and have halted the reading material for that course.
		Hopefully, I can get the second course&apos;s initial post completed tomorrow.
		My discussion post for today:
	</p>
	<blockquote>
		<h3>What are the implications of this architecture?</h3>
		<p>
			One implication of the separate partitions for data and instructions is that the hardware for each can be given differing requirements.
			For example, it&apos;s absolutely imperative that data space be writeable.
			However, the Hack platform chooses to make the instruction partition exist on a read-only device (Nisan &amp; Schocken, n.d.).
			This is an odd choice, but one that wouldn&apos;t be possible if the data partition had to exist on this same device.
			Another implication is that you can tell whether a given piece of memory refers to an instruction or a scrap of data based solely on its memory address.
			As data and instructions never trade places or intermingle as far as storage is concerned, you can tell right where each resides.
		</p>
		<h4>Read-only instructions</h4>
		<p>
			This isn&apos;t directly related to the separate partitioning, but it&apos;s sort of tangently related.
			Because one of the separate partitions is read-only, software on the Hack platform is completely unable to modify itself or other software.
			It can only manipulate non-instruction data.
			This seems like a severe limitation of the platform.
			Also, because the instructional memory is read-only, all memory mapping needs to be done in the data memory instead.
			(It&apos;s feasible that input devices, but not output devices, could be mapped to the instructional partition, but Hack doesn&apos;t do that.)
		</p>
		<h3>Discuss is the difference between $a[RISC] and $a[CISC] architecture. What are the advantages and disadvantages of each architecture?</h3>
		<p>
			The $a[CISC] methodology focuses on making powerful hardware that can understand and execute complex instructions.
			The hardware has to be more complex for this, but the software is allowed to be less verbose.
			Compilers also have an easier time translating programming languages into machine code on this type of platform, as there&apos;s less to translate.
			The $a[CISC] languages (remember that different $a[CISC] $a[CPU]s will have slightly different languages) are themselves similar to the high-level languages we type our code in (Roberts, n.d.).
			However, the $a[RISC] methodology is the opposite.
			Everything must be explicitly told to the computer in step-by-step form.
			This allows the hardware to be very simple; it only needs to know how to perform a few, very basic tasks.
			However, in turn, the software takes on the complexity lost from the hardware, and compilation becomes more burdensome.
			As instructions are bigger, they also take up more $a[RAM] (Roberts, n.d.).
			It&apos;s also worth noting that $a[CISC] can be told to operate directly on information in memory (it&apos;ll copy the information to the registers transparently), while $a[RISC] needs to have values explicitly copied into registers before they can be used.
		</p>
		<p>
			It may look like $a[CISC] has all the advantages, but building a simpler $a[RISC] instruction set has advantages as well.
			For example, having each instruction only take a single clock cycle to complete is what makes the pipelining we learned about in a past unit possible.
			Furthermore, if we want to reuse a value, the $a[CISC] architecture would require the value be loaded into the registers (implicitly) each time before it was used.
			Because the $a[RISC] architecture demands that we load values <strong>*explicitly*</strong> the value remains ready and available for us to use as long as we haven&apos;t loaded a new value yet to overwrite it (Roberts, n.d.).
			We can load the value once and use it a multitude of times, if we so desire.
		</p>
		<div class="APA_references">
			<h3>References:</h3>
			<p>
				Nisan &amp; Schocken. (n.d.). Computer Architecture. Retrieved from <a href="https://my.uopeople.edu/pluginfile.php/232176/mod_resource/content/1/chapter%2005.pdf"><code>https://my.uopeople.edu/pluginfile.php/232176/mod_resource/content/1/chapter%2005.pdf</code></a>
			</p>
			<p>
				Roberts, E. (n.d.). RISC vs. CISC. Retrieved from <a href="https://cs.stanford.edu/people/eroberts/courses/soco/projects/risc/risccisc/"><code>https://cs.stanford.edu/people/eroberts/courses/soco/projects/risc/risccisc/</code></a>
			</p>
		</div>
	</blockquote>
	<p>
		I guess I&apos;ve chosen my courses for next term.
		I was going to wait a day before committing, that way I could have the updated version of my course tree on one of the pages that won&apos;t have to be censored.
		(That is to say, have it on a page that doesn&apos;t involve a discussion post in the course in which my discussion posts aren&apos;t quarantined to my learning journal.)
		There&apos;s no point though.
		Well, there is a point: it&apos;d make it a lot easier for me to look at what I have left to do when I&apos;m choosing courses for a future term.
		However, my course tree links to the sections of the main index of my coursework archive that pertain to the course in question.
		That&apos;s how I tell which courses I&apos;m done with at a glance and which I still need to take: the courses I&apos;ve taken have their name hyperlinked, while the other course names are non-hyperlink text.
		There&apos;s no point in waiting, as I don&apos;t want to link to the down pages from up pages.
		That&apos;d be bad practice.
	</p>
	<p>
		It&apos;s also worth noting that I&apos;ve un-chosen all my electives.
		I chose them based on the premise that I might come back to this school for a master&apos;s degree in the one field they offer master&apos;s degrees in: business.
		But no.
		I&apos;ll stick through the computer science degrees, but I&apos;m not getting a master&apos;s in business from a school that censors me.
		A master&apos;s in computer science would be nice to get from another school one day, but if I decide I need a master&apos;s in business, it&apos;ll be from any school but this one.
		With that in mind, I&apos;ll take the English course and the algebra course.
		My course tree is now as follows:
	</p>
	<ul>
		<li>
			<a href="/en/coursework/#CS1101"><span class="needed-for-associate">CS 1101</span>: Programming Fundamentals</a>
			<ul>
				<li>
					<a href="/en/coursework/#CS1102"><span class="needed-for-associate">CS 1102</span>: Programming 1</a>
					<ul>
						<li>
							<a href="/en/coursework/#CS1103"><span class="needed-for-associate">CS 1103</span>: Programming 2</a>
							<ul>
								<li>
									<a href="/en/coursework/#CS1104"><span class="needed-for-associate">CS 1104</span>: Computer Systems</a>
									<ul>
										<li>
											<span class="needed-for-associate">CS 2204</span>: Communications and Networking
											<ul>
												<li>
													<span class="needed-for-bachelor">CS 4404</span>: Advanced Networking and Data Security<span title="required only for the bachelor degree, not the associate degree">*</span>
												</li>
											</ul>
										</li>
									</ul>
								</li>
								<li>
									<a href="/en/coursework/#CS2205"><span class="needed-for-associate">CS 2205</span>: Web Programming 1 <em>(proctored course)</em></a>
									<ul>
										<li>
											<span class="needed-for-bachelor">CS 3305</span>: Web Programming 2 <em>(proctored course)</em><span title="required only for the bachelor degree, not the associate degree">*</span>
										</li>
										<li>
											<span class="needed-for-bachelor">CS 4405</span>: Mobile Applications<span title="required only for the bachelor degree, not the associate degree">*</span>
										</li>
									</ul>
								</li>
								<li>
									<a href="/en/coursework/#CS2301"><span class="needed-for-associate">CS 2301</span>: Operating Systems 1 <em>(proctored course)</em></a>
									<ul>
										<li>
											<span class="needed-for-bachelor">CS 3307</span>: Operating Systems 2<span title="required only for the bachelor degree, not the associate degree">*</span>
										</li>
									</ul>
								</li>
								<li>
									<a href="/en/coursework/#CS2401"><span class="needed-for-associate">CS 2401</span>: Software Engineering 1</a>
									<ul>
										<li>
											<span class="needed-for-bachelor">CS 4403</span>: Software Engineering 2<span title="required only for the bachelor degree, not the associate degree">*</span>
										</li>
									</ul>
								</li>
								<li>
									<span class="needed-for-bachelor">CS 3303</span>: Data Structures<span title="required only for the bachelor degree, not the associate degree">*</span>
									<ul>
										<li>
											<span class="needed-for-bachelor">CS 3304</span>: Analysis of Algorithms<span title="required only for the bachelor degree, not the associate degree">*</span>
											<ul>
												<li>
													<span class="needed-for-bachelor">CS 4406</span>: Computer Graphics <em>(proctored course)</em><span title="required only for the bachelor degree, not the associate degree">*</span>
												</li>
												<li>
													<span class="needed-for-bachelor">CS 4407</span>: Data Mining and Machine Learning <em>(proctored course)</em><span title="required only for the bachelor degree, not the associate degree">*</span>
													<ul>
														<li>
															<span class="needed-for-bachelor">CS 4408</span>: Artificial Intelligence <em>(proctored course)</em><span title="required only for the bachelor degree, not the associate degree">*</span>
														</li>
													</ul>
												</li>
											</ul>
										</li>
										<li>
											<span class="needed-for-bachelor">CS 3308</span>: Information Retrieval <em>(proctored course)</em><span title="required only for the bachelor degree, not the associate degree">*</span>
										</li>
									</ul>
								</li>
								<li>
									<span class="needed-for-bachelor">CS 4402</span>: Comparative Programming Languages<span title="required only for the bachelor degree, not the associate degree">*</span>
								</li>
							</ul>
						</li>
						<li>
							<a href="/en/coursework/#CS2203"><span class="needed-for-associate">CS 2203</span>: Databases 1</a>
							<ul>
								<li>
									<span class="needed-for-bachelor">CS 3306</span>: Databases 2 <em>(proctored course)</em><span title="required only for the bachelor degree, not the associate degree">*</span>
								</li>
							</ul>
						</li>
					</ul>
				</li>
			</ul>
		</li>
		<li>
			<a href="/en/coursework/#ENGL1102"><span class="needed-for-associate">ENGL 1102</span>: English Composition 2 <em>(proctored course)</em></a>
		</li>
		<li>
			<a href="/en/coursework/#HIST1421"><span class="needed-for-associate">HIST 1421</span>: Greek and Roman Civilization</a>
		</li>
		<li>
			<a href="/en/coursework/#MATH1201"><span class="needed-for-associate">MATH 1201</span>: College Algebra <em>(proctored course)</em></a>
			<ul>
				<li>
					<span class="needed-for-bachelor">MATH 1211</span>: Calculus<span title="required only for the bachelor degree, not the associate degree">*</span>
				</li>
			</ul>
		</li>
		<li>
			<span class="needed-for-associate">MATH 1280</span>: Introduction to Statistics <em>(proctored course)</em>
		</li>
		<li>
			<span class="needed-for-bachelor">MATH 1302</span>: Discrete Mathematics<span title="required only for the bachelor degree, not the associate degree">*</span>
		</li>
		<li>
			<a href="/en/coursework/#PHIL1404"><span class="needed-for-associate">PHIL 1404</span>: Ethics and Social Responsibility</a>
		</li>
		<li>
			<a href="/en/coursework/#UNIV1001"><span class="needed-for-associate">UNIV 1001</span>: Online Education Strategies</a>
		</li>
	</ul>
	<ul>
		<li>
			<span class="needed-for-associate">Any one of these:</span>
			<ul>
				<li>
					BIOL 1121: Biology 1 for Health Studies Majors
				</li>
				<li>
					BIOL 1301: Introduction to Biology
				</li>
				<li>
					ENVS 1301: Introduction to Environmental Science
				</li>
			</ul>
		</li>
		<li>
			Any <span class="needed-for-associate">one</span> (<span class="needed-for-bachelor">two</span><span title="required only for the bachelor degree, not the associate degree">*</span>) of these:
			<ul>
				<li>
					ECON 1580: Introduction to Economics
				</li>
				<li>
					<a href="/en/coursework/#POLS1503">POLS 1503: Globalization</a>
				</li>
				<li>
					PSYC 1111: Introduction to Human Psychology
				</li>
				<li>
					PSYC 1205: Emotional Intelligence
				</li>
				<li>
					PSYC 1504: Introduction to Psychology
				</li>
				<li>
					SOC 1502: Introduction to Sociology
				</li>
			</ul>
		</li>
		<li>
			Any <span class="needed-for-associate">one</span> (<span class="needed-for-bachelor">two</span><span title="required only for the bachelor degree, not the associate degree">*</span>) of these:
			<ul>
				<li>
					AHIST 1401: Art History
				</li>
				<li>
					ENGL 1405: World Literature
				</li>
				<li>
					PHIL 1402: Introduction to Philosophy
				</li>
			</ul>
		</li>
		<li>
			Any <span class="needed-for-associate">two</span> (<span class="needed-for-bachelor">five</span><span title="required only for the bachelor degree, not the associate degree">*</span>) electives
			<ul>
				<li>
					<a href="/en/coursework/#BUS1101">BUS 1101: Principles of Business Management</a>
				</li>
			</ul>
		</li>
	</ul>
</section>
END
);
